A virtual machine (VM) is a software implementation of a machine (computer) that includes its own operating system (referred to as a guest operating system) and executes application programs. A host computer allocates a certain amount of its resources to each of the virtual machines, and multiplexes its underlying hardware platform among the virtual machines. Each virtual machine is then able to use the allocated resources to execute its guest operating system and applications. The software layer providing the virtualization is commonly referred to as a hypervisor and is also known as a virtual machine monitor (VMM), a kernel-based hypervisor, or part of a host operating system. The hypervisor emulates the underlying hardware of the host computer, making the use of the virtual machine transparent to the guest operating system and the user of the computer. A host controller (e.g., a server) may manage (e.g., create/remove virtual machines, shut down virtual machines), monitor (e.g., monitor system resources used by hosts and/or virtual machines), configure (e.g., change hardware, software and/or guest operating systems on virtual machines), and/or control the virtual machines.
In a virtualization system, some of the virtual machine hosts, virtual machines, or other components may be changed (e.g., virtual machine components such as virtual hardware, guest operating systems, software and/or drivers installed on a virtual machine, etc.). For example, a guest operating system may be changed (e.g., updated) from one version of the guest operating system (e.g., Fedora 8) to another version of the guest operating system (e.g., Fedora 10). In another example, a guest operating system may be changed from one type of guest operating system (e.g., Windows Vista®) to another type of guest operating system (e.g., Fedora 10). In a further example, virtual hardware (e.g., a motherboard) on a virtual machine may be changed and the new motherboard may support newer, better, and/or more efficient hardware (e.g., faster random access memory (RAM)) and/or new software (e.g., new drivers) may be installed which allow the user of newer, better, and/or more efficient hardware. If a virtual machine component of a virtual machine is changed or added (e.g., a guest operating system is updated or changed), then the virtual machine may not run as optimally or efficiently using the virtual hardware which is currently in use by the virtual machine. In addition, a virtual machine may be created (e.g., instantiated) and configured to use sub-optimal or less efficient virtual hardware (e.g., a system administrator selected sub-optimal or less efficient virtual hardware).